<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 函数的定义方法-------------------------------

        // 1.自定义函数(命名函数)

        function fn() {};

        // 2.函数表达式(匿名函数)

        var fun = function() {};


        // 3.利用new funciton('参数1','参数2','参数3'); 效率低
        var f = new Function('a', 'b', 'console.log(a+b)');
        f(3, 1);

        // 4.所有函数都是Function的实例(对象)
        console.dir(f);
        console.log(f instanceof Object); // true

        // 所有函数都是function的实例(对象)
        // 函数也属于对象

        // 函数的调用方法----------------------------------

        // 1.普通函数
        function fn() {
            console.log('人生的巅峰');
        }
        // fn();  fn.call()
        // 2.对象的方法
        var o = {
            sayHi: function() {
                console.log('人生的巅峰');
            }
        }
        o.sayHi();

        // 3.构造函数
        function Star() {};
        new Star();
        // 4.绑定事件函数
        btn.onclick = function() {}; //点击了按钮就可以调用函数
        // 5.定时器函数
        setInterval(function() {}, 1000); //这个函数是定时器自动一秒调用一次
        // 6.立即执行函数
        (function() {
            console.log('立即执行');
        })();
        // 立即执行函数是自动调用
    </script>
</body>

</html>